package com.orzxlee.Lambda05;

/**
 *  注意事项
 *      1.使用Lambda 必须要求有接口,并且要求接口中有且仅有一个抽象方法
 *      2.必须有上下文环境,才能推导出Lambda对应的接口
 *          根据 局部变量的赋值 Runnable r = () -> System.out.println("Lambda");
 *          根据 调用方法的参数 new Thread( () -> System.out.println("Lambda")).start();
 *
 */
public class InterLambdaDemo {
    public static void main(String[] args) {

//        useInter(() -> {
//            System.out.println("输出i");
//        });

        //1.使用Lambda 必须要求有接口,并且要求接口中有且仅有一个抽象方法
        useInter(() -> System.out.println("输出i"));

        //2.必须有上下文环境,才能推导出Lambda对应的接口
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                System.out.println("匿名内部类");
//            }
//        }).start();

        //2.必须有上下文环境,才能推导出Lambda对应的接口
//        Runnable r = () -> System.out.println("Lambda");
//        new Thread(r).start();

        new Thread( () -> System.out.println("Lambda")).start();

    }

    private  static void useInter(Inter i){
        i.show();
    }

}
